home *** CD-ROM | disk | FTP | other *** search
- * BLOCK EDIT.DOC *
-
- 1 INTRODUCTION
-
- THIS PROGRAM IS INTENDED MORE AS AN
- AID TO PROGRAMMING GRAPHICS THAN AS A
- THING UNTO ITSELF. I AM GOING TO BE
- ASSUMING A CERTAIN AMOUNT OF KNOW-
- LEDGE ON THE PART OF THE USER ABOUT THE
- C64'S PROGRAMMABLE CHARACTER GRAPHICS.
- IF YOU STILL HAVE SOMETHING TO LEARN
- ABOUT THE MACHINE (DON'T WE ALL), I
- CAN STRONGLY RECOMMEND MAPPING THE
- COMMODORE 64, BY SHELDON LEEMAN
- (COMPUTE! BOOKS). THE PROGRAMMER'S
- REFERENCE GUIDE FROM COMMODORE ALSO
- COVERS THE SUBJECT, BUT NOT AS CLEARLY.
-
- BLOCK EDIT IS INTENDED TO ALLOW THE
- EDITING AND SAVING OF CUSTOM CHARACTER
- SETS, BUT IT IS NOT ORIENTED TOWARD THE
- CREATION OF NORMAL SIZED, 8 BY 8 PIXEL
- CHARACTERS. INSTEAD, IT GROUPS THESE
- CHARACTERS IN BLOCKS OF 4 TO PRODUCE
- 16 BY 16 PIXEL, DOUBLE SIZED CHARACTERS,
- HENCEFORTH TO BE REFERRED TO AS BLOCKS.
- IT ALSO STORES A 256 BYTE 'COLORFILE'
- AFTER THE END OF THE CHARACTER SHAPE
- DATA, WITH AN INDIVIDUAL COLOR FOR EACH
- CHARACTER WITHIN THE SET. THIS ALSO
- ALLOWS INDIVIDUAL CHARACTERS TO BE
- EITHER 8 BY 8, HI RESOLUTION, 2 COLOR;
- OR 4(WIDE) BY 8, MULTICOLOR, 4 COLOR.
- THESE MODES CAN BE MIXED WITHIN A SINGLE
- BLOCK. FOR A QUICK EXAMPLE OF WHAT ALL
- THIS IS GOOD FOR, LOAD"BLOCK EDIT.O",8
- AND RUN IT. THE TITLE ITSELF IS ALL
- HI-RES, AND THE LITTLE FELLOW IS MULTI-
- COLOR.
- BLOCK EDIT WAS WRITTEN IN ASSEMBLER,
- USING LEW LASHER'S VE2 TEXT EDITOR AND
- AS2 ASSEMBLER. THESE PROGRAMS ARE
- AVAILABLE ON THE BOSTON COMPUTER SOCIETY
- COMMODORE USER'S GROUP PUBLIC DOMAIN
- UTILITIES DISK # 3. THANKS, LEW.
-
- 2 DEFINITIONS
-
- BLOCK: 4 CHARACTERS ARRANGED ON THE
- SCREEN IN A 2 BY 2 PATTERN. THE RELATIVE
- POSITION OF THE CHARACTERS WITHIN A
- BLOCK, BY SCREEN CODE, IS THIS:
-
- BLOCK #0 0,1 #1 4,5 ...... #63 252,253
- 2,3 6,7 254,255
-
- CHARACTERSET: 2048 BYTES OF CHARACTER
- DATA (256 * 8), FOLLOWED BY A 256 BYTE
- COLORFILE. THIS EDITOR WILL SAVE FROM
- $800 (2048) TO $10FF (4351). IT WILL
- LOAD A SET FROM ANY SOURCE AT $800,
- REGARDLESS OF THE START ADDRESS IN THE
- FILE HEADER. A COLORFILE WILL BE
- CREATED BY THE ACT OF SELECTING COLORS
- (CTRL N). LOADING A FILE LONGER THAN
- $900 (2304) BYTES LONG WILL WRITE OVER
- PART OF THE EDITOR, WITH UNPREDICTABLE
- RESULTS. FILES SAVED FROM THIS EDITOR
- WILL HAVE A START ADDRESS OF $800 IN
- THE HEADER. THE EDITOR USES PRG FORMAT
- FILES ONLY.
-
- COLORFILE: THE LAST 256 BYTES OF A
- CHARACTERSET, STARTING AT $1000,
- CONTAINING THE COLOR INFORMATION FOR
- EACH CHARACTER IN THE SET. BITS 0-2
- CONTAIN THE FOREGROUND COLOR, BIT 3
- DETERMINES MULTI-COLOR MODE (1 = ON),
- AND BITS 4-7 ARE NOT USED, EXCEPT IN
- THE FIRST 3 BYTES OF THE FILE. THESE
- THREE BYTES USE BITS 4-7 TO STORE, IN
- ORDER, THE BACKGROUND COLOR, MULTICOLOR
- 2, AND MULTICOLOR3.
-
- EDIT MODE: THE NORMAL OPERATING MODE
- OF THIS PROGRAM. AT THE TOP LEFT OF THE
- SCREEN WILL BE THE EDIT DISPLAY, A 16
- BY 16 CHARACTER DISPLAY OF THE CURRENT
- BLOCK. AT THE CENTER RIGHT OF THE SCREEN
- THE ACTUAL BLOCK WILL BE DISPLAYED. ON
- THE EDIT DISPLAY WILL BE A SMALL BOX
- WITH WHITE TOP AND BOTTOM, AND BLACK
- SIDES. THIS IS THE CURSOR, WHICH COVERS
- ONE PIXEL AT A TIME.
-
- HI-RES MODE: CHARACTER DATA IS
- DISPLAYED ONE BIT AT A TIME, WITH 1 BITS
- BEING FOREGROUND COLOR, AND 0 BITS
- BACKGROUND COLOR.
-
- MULTI-COLOR MODE: CHARACTER DATA IS
- DISPLAYED TWO BITS AT A TIME, WITH 00
- BIT PAIRS BACKGROUND COLOR, 01 BIT PAIRS
- MULTICOLOR2, 10 BIT PAIRS MULTICOLOR3,
- AND 11 BIT PAIRS FOREGROUND COLOR.
- HORIZONTAL RESOLUTION IS SACRIFICED FOR
- MORE COLORS, SINCE THE MULTICOLOR PIXELS
- ARE TWICE AS WIDE AS HI-RES ONES.
-
- 3 USING THE EDITOR
-
- TO START UP: LOAD"BLOCK EDIT.O",8 THEN
- RUN. YOUR C64 MUST BE IN A NORMAL CON-
- FIGURATION AS FAR AS THE START OF BASIC
- GOES. IF YOU ARE IN ANY DOUBT, RESET THE
- MACHINE (RESET BUTTON, OR POWER OFF, OR
- SYS 64738) BEFORE LOADING.
-
- TO SKIP TITLE: LOAD PROGRAM, THEN SYS
- 4352
-
- AFTER THE TITLE, YOU WILL SEE A
- COMMAND SUMMARY. IN GENERAL, SINGLE
- KEYSTROKES DO EASILY REVERSIBLE THINGS,
- SUCH AS EDITING PIXELS, OR SELECTING THE
- BLOCK TO BE EDITED. CONTROL KEYS (CTRL
- PRESSED SIMULTANEOUSLY WITH ANOTHER KEY)
- WILL DO THINGS YOU'LL WANT TO BE MORE
- CAREFUL WITH, SUCH AS ERASING ENTIRE
- BLOCKS, OR LOADING A NEW CHARACTERSET
- OVER THE CURRENT ONE.
- THE NEXT THING YOU WILL SEE IS THE
- LOAD ROUTINE PROMPT. IF YOU ARE STARTING
- A NEW SET, DOWNLOAD THE ROM CHARACTERS
- FIRST. SEE THE FINAL SECTION FOR WHY.
- OTHERWISE, LOAD THE SET YOU WANT TO WORK
- ON FROM DISK. IF YOU WANT TO SEE THE
- TITLE ROUTINE AND CHARACTERS, SELECT
- EITHER ROM OR DISK AND THEN RETURN TO
- THE EDITOR. YOU WILL THEN HAVE TO USE
- CTRL N TO SET A COLOR, SINCE EVERYTHING
- IS INITIALIZED TO BLACK. AFTER THAT, A
- D COMMAND WILL DISPLAY THE CURRENT SET
- IN SOMETHING OTHER THAN BLACK ON BLACK.
- THE BEST WAY TO LEARN THE EDIT MODE IS
- TO MESS AROUND WITH IT. ? WILL GIVE YOU
- BACK THE COMMAND SUMMARY WHEN IN EDIT,
- AND ALL OF THE NON EDIT MODES GIVE
- PROMPTS AND CAN BE BACKED OUT OF WITHOUT
- CHANGING ANYTHING.
-
- COMMANDS: EDIT MODE
-
- CURSOR KEYS: THESE WILL MOVE THE
- CURSOR AROUND THE EDIT DISPLAY AT THE
- LEFT OF THE SCREEN. NOTE THAT THE CURSOR
- WILL GO OFF THE BOTTOM OR RIGHT OF THE
- DISPLAY, AND RETURN ON THE NEXT ROW OR
- COLUMN. AT THE TOP OR LEFT, THE CURSOR
- WILL STOP. THE MODE A GIVEN CHARACTER IS
- IN IS INDICATED BY THE CURSOR WIDTH. IT
- WILL AUTOMATICALLY SWITCH SIZE, DEPEND-
- ING ON THE PIXEL SIZE - SINGLE FOR HI-
- RES, AND DOUBLE FOR MULTI-COLOR.
-
- 1,2,3,4: THESE WILL SET THE PIXEL
- UNDER THE CURSOR TO 1) BACKGROUND COLOR
- 2) MULTICOLOR2 3) MULTICOLOR3 4) FORE-
- GROUND COLOR. IF THE CHARACTER THE
- CURSOR IS ON IS IN HI-RES MODE, 2 AND 3
- WILL HAVE NO EFFECT.
-
- B: THIS WILL GO TO BLOCK SELECT MODE.
- IT WILL DISPLAY THE CURRENT BLOCK#, AND
- ALLOW YOU TO CHANGE THIS USING THE + AND
- - KEYS. IF YOU JUST WANT TO KNOW THE
- CURRENT BLOCK#, HIT B, THEN HIT RETURN
- WITHOUT USING + OR -.
-
- C: THIS WILL ALLOW YOU TO SELECT A NEW
- FOREGROUND COLOR FOR THE CHARACTER THAT
- THE CURSOR IS ON. USE + OR - TO SELECT
- THE COLOR# AND HIT RETURN. YOUR OPTIONS
- HERE ARE LIMITED TO THE FIRST EIGHT
- COLORS. THIS IS A TRADEOFF FOR THE
- MULTICOLOR CAPABILITY.
-
- D: THIS WILL DISPLAY THE ENTIRE SET.
- BLOCK# 0 IS AT THE UPPER LEFT, AND THE
- REST ARE IN NUMERIC ORDER TO BLOCK# 63
- AT THE LOWER RIGHT. HITTING ANY KEY WILL
- RETURN TO EDIT MODE.
-
- H: THIS WILL SET THE CHARACTER THAT
- THE CURSOR IS ON TO HI-RES MODE.
-
- M: THIS WILL SET THE CHARACTER THAT
- THE CURSOR IS ON TO MULTI-COLOR MODE.
-
- +: THIS WILL DISPLAY FOR EDIT THE NEXT
- HIGHER BLOCK.
-
- -: THIS WILL DISPLAY FOR EDIT THE NEXT
- LOWER BLOCK.
-
- ?: THIS WILL PRINT A COMMAND SUMMARY
- ON SCREEN.
-
- CTRL E: THIS WILL ERASE THE CURRENTLY
- SELECTED BLOCK.
-
- CTRL L: THIS WILL GO TO THE LOAD
- ROUTINE. YOU WILL BE GIVEN THE OPTION TO
- DOWNLOAD EITHER OF THE ROM CHARACTER
- SETS, OR TO LOAD A SET FROM DISK. ONCE
- YOU HAVE SELECTED ONE OR THE OTHER, YOU
- CAN RETURN TO EDIT MODE WITHOUT LOADING
- ANYTHING BY HITTING RETURN WITH NO FILE-
- NAME. NOTE THAT THIS ALSO WORKS FOR THE
- SAVE ROUTINE. IF A DISK ERROR OCCURS,
- THE ERROR# AND NAME WILL BE PRINTED, AND
- YOU WILL BE ASKED IF YOU WANT TO TRY
- AGAIN. A NO ANSWER WILL RETURN YOU TO
- THE EDIT MODE.
-
- CTRL N: THIS WILL ALLOW YOU TO SET NEW
- COLORS. THE FOREGROUND COLOR IS OPTION-
- AL, SINCE CHANGING THAT FOR THE WHOLE
- SET INVOLVES CHANGING ALL THE COLORFILE
- BYTES AND POSSIBLY LOSING MUCH INFOR-
- MATION IF YOU HAVE BEEN VARYING COLOR ON
- AN INDIVIDUAL CHARACTER BASIS. THE
- BACKGROUND AND MULTICOLORS ARE GLOBAL
- IN ANY CASE, INVOLVING THE SETTING OF
- THE BACKGROUND COLOR REGISTER AT $D021
- (53281), THE COLOR REGISTERS AT
- $D022 (MULTICOLOR2) AND $D023 (MULTI-
- COLOR3), AND THE SETTING OF THE FIRST
- THREE BYTES OF THE COLORFILE.
-
- CTRL S: THIS WILL GO TO THE SAVE
- ROUTINE. IF YOU WANT TO WRITE OVER AN
- EXISTING FILE, ADD '@0:' TO THE START
- OF THE FILENAME. IF A DISK ERROR OCCURS,
- THE ERROR# AND NAME WILL BE PRINTED, AND
- YOU WILL BE ASKED IF YOU WANT TO TRY
- AGAIN. A NO ANSWER WILL RETURN YOU TO
- THE EDIT MODE.
-
- CTRL T: THIS WILL TRANSFER THE
- CURRENTLY SELECTED BLOCK TO A NEW
- LOCATION. THE ROUTINE WILL ASK YOU TO
- SELECT THE NEW LOCATION. IT IS A GOOD
- IDEA TO USE THE D COMMAND TO FIGURE OUT
- WHAT YOU WANT WRITTEN OVER BEFORE DOING
- A TRANSFER. THE BLOCK YOU TRANSFER ALSO
- STAYS IN ITS OLD LOCATION, AND THE BLOCK
- THAT WAS AT THE NEW LOCATION IS LOST.
-
- CTRL X: THIS WILL EXIT TO EITHER A
- MONITOR (OR OTHER PROGRAM) AT $C000
- (49152), OR IT WILL COLDSTART BASIC
- BY DOING A JMP $FCE2 (64738).
- IF YOU WANT TO RESTART THE EDITOR,
- FROM A MONITOR IT WOULD TAKE G 1100.
- FROM BASIC TRY SYS 4352. THIS ALL
- ASSUMES THAT YOU HAVEN'T OVERWRITTEN
- IT IN THE MEANTIME.
-
- IN GENERAL, COMMANDS THAT REQUIRE
- FURTHER INPUT FROM YOU WILL PROMPT YOU
- AS THEY PROCEED. SINGLE LETTER RESPONSES
- WON'T NEED A RETURN AFTER THEM.
-
- 4 USING THE BLOCKS
-
- YOU SHOULD HAVE GOTTEN A THREE PART,
- BASIC LANGUAGE DEMO WITH THIS. THE FIRST
- PART, BLOCK.DEMOSTART, IS A ONE LINE
- PROGRAM THAT SETS THE START OF BASIC TO
- 4352, JUST PAST THE END OF THE COLOR-
- FILE, AND LOADS THE SECOND PART, BLOCK.
- DEMO . THIS THEN LOADS THE CHARACTERSET
- DEMOSET, SETS UP THE COLORS, AND SHOWS
- THE DEMO.
- FEEL FREE TO USE THESE ROUTINES TO
- WRITE YOUR OWN PROGRAMS AROUND. THEY ARE
- EXTENSIVELY REM'D AND FAIRLY MODULAR.
- ONE WARNING - THE BLOCK DRAW ROUTINE
- (LINE 9000) WRITES DIRECT TO THE SCREEN
- AND COLOR MEMORIES, AND THE X, Y, AND
- BLOCK# VALUES ARE NOT RANGECHECKED. IF
- YOU PASS VALUES OUTSIDE THE LEGAL RANGE,
- YOU WILL EITHER WRITE TO THE WRONG PLACE
- OR PRODUCE AN ILLEGAL QUANTITY ERROR.
- IF YOU ARE PROGRAMMING IN SOME OTHER
- LANGUAGE, THE DEMO SHOULD STILL BE
- USEFUL TO YOU IN TERMS OF SHOWING WHAT
- SHOULD HAPPEN WHEN IN ORDER TO DISPLAY
- BLOCKS.
- IF YOU NEED TO HAVE NORMAL TEXT AND
- BLOCKS ON SCREEN AT THE SAME TIME, THE
- BEST WAY TO GO ABOUT IT IS TO PRESERVE
- THE NORMAL CHARACTERS THAT YOU WILL
- NEED WHEN YOU EDIT THE SET. IF YOU DON'T
- CHANGE THE FIRST 16 BLOCKS DOWNLOADED
- FROM ROM, YOU WILL BE ABLE TO PRINT THE
- FIRST 64 CHARACTERS NORMALLY AND STILL
- HAVE 48 BLOCKS (# 16-63) AVAILABLE.
-
- 5 LIMITATIONS
- YOU WILL HAVE NOTICED BY NOW THAT
- YOU DON'T SEE TEXT AND BLOCKS AT THE
- SAME TIME IN THE EDITOR. THIS IS BECAUSE
- I'M TOO LAZY TO DO THE SORT OF INTERRUPT
- DRIVEN ROUTINE THAT WOULD BE NEEDED TO
- SWITCH FROM RAM TO ROM SETS IN MID
- SCREEN, AND SINCE THIS IS AN EDITOR
- THERE IS NO CERTAINTY THAT THE RAM SET
- CURRENTLY BEING USED WILL CONTAIN ANY
- PARTICULAR CHARACTER. AHAH! YOU WILL
- SAY - WHAT DOES HE USE TO PRODUCE THE
- EDIT DISPLAY? THE ANSWER IS THE LAST 4
- CHARACTERS IN THE SET. CHARACTERS 252-
- 255 ARE SET TO THE PROPER SHAPES TO
- DISPLAY SOLID BLOCKS OF ALL 4 COLORS
- WHEN THE ROM SET IS DOWNLOADED. THE
- RESULT IS THAT IF YOU GO TO BLOCK #63
- AND START EDITING IT, VERY PECULIAR
- THINGS HAPPEN TO THE EDIT DISPLAY.
- NOTE THAT THIS DOES NOT AFFECT EITHER
- THE ACTUAL BLOCK DISPLAYED ON THE RIGHT,
- OR THE SET IN MEMORY (BEYOND THE EDIT
- CHANGES THEMSELVES). WHAT THIS ALL MEANS
- IS THAT YOU WILL HAVE TO LEAVE #63 TO
- LAST, AND ALSO THAT IF YOU LOAD A SET
- FROM SOME OTHER SOURCE YOU WILL WANT TO
- GO TO #63 FIRST AND CHANGE IT TO THE
- EDIT SHAPES.
-
- I'D BE INTERESTED IN HEARING ANYTHING
- YOU COME UP WITH IN THE WAY OF BUGS,
- QUESTIONS, SUGGESTIONS,ETC. I WOULD LOVE
- TO SEE ANY APPLICATIONS YOU COME UP
- WITH. I WILL GUARANTEE AN (ATTEMPTED)
- ANSWER TO ANY QUESTIONS SENT WITH A
- SASE. MY ADDRESS IS:
-
- HENRY VANDERBILT
- 804 PARKER ST.
- BOSTON,MA. 02120
-
- I CAN OCCASIONALLY BE REACHED BY
- PHONE AT 617 442-5295. I CAN HANDLE
- XMODEM FILE TRANSFERS AT 300 BAUD.
-